package com.xingchen.loveparttimejob.controller.servlet;


import jakarta.websocket.HandshakeResponse;
import jakarta.websocket.server.HandshakeRequest;
import jakarta.websocket.server.ServerEndpointConfig;

import java.net.URI;

/**
 * @author 小志
 * @date 2024/11/21 - 21:32
 */
public class MyConfigurator extends ServerEndpointConfig.Configurator {
    @Override
    public void modifyHandshake(ServerEndpointConfig serverEndpointConfig, HandshakeRequest request, HandshakeResponse response) {
        try {
            // 获取 WebSocket 请求的完整 URI（包括查询部分）
            URI uri = request.getRequestURI();
            String query = uri.getQuery(); // 获取 URI 的查询部分
            // 检查查询参数中是否包含 'token'
            if (query != null && query.contains("token=")) {
                // 提取 token 参数
                String token = query.substring(query.indexOf("token=") + 6); // 获取 token
                // 将 token 存入 WebSocket 会话的 UserProperties，供后续使用
                serverEndpointConfig.getUserProperties().put("Authentication", token);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
